package com.fulihui.wgj.facade.service.statistics;

import com.fulihui.common.error.InvokeServiceException;
import com.fulihui.common.result.rpc.BaseResult;
import com.fulihui.common.result.rpc.SimpleResult;
import com.fulihui.wgj.facade.dto.WxSubscribeStatisticsDTO;
import com.fulihui.wgj.facade.request.statistics.WxSubscribeStatisticsPageRequest;
import com.fulihui.wgj.facade.request.statistics.WxSubscribeStatisticsQueryRequest;
import com.fulihui.wgj.facade.request.statistics.WxSubscribeStatisticsRequest;
import com.fulihui.wgj.facade.result.statistics.WxSubscribeStatisticsPageResult;

import java.util.List;

/**
 * 微信粉丝关注统计Service
 *
 * @author wang_wx
 * @date 2018-07-03
 */
public interface WxSubscribeStatisticsService {

    /**
     * 保存粉丝统计
     *
     * @param request
     * @return
     * @throws InvokeServiceException
     */
    BaseResult saveWxStatistics(WxSubscribeStatisticsRequest request) throws InvokeServiceException;

    /**
     * 更新粉丝统计
     *
     * @param request AppId和Date必填
     * @return
     * @throws InvokeServiceException
     */
    BaseResult updateByAppIdAndDate(WxSubscribeStatisticsRequest request) throws InvokeServiceException;

    /**
     * 查询粉丝统计-不分页
     *
     * @param request
     * @return
     * @throws InvokeServiceException
     */
    SimpleResult<List<WxSubscribeStatisticsDTO>> queryWxStatistics(WxSubscribeStatisticsQueryRequest request) throws InvokeServiceException;

    /**
     * 查询粉丝统计-分页
     *
     * @param request
     * @return
     * @throws InvokeServiceException
     */
    WxSubscribeStatisticsPageResult queryPageWxStatistics(WxSubscribeStatisticsPageRequest request) throws InvokeServiceException;
}
